package com.erp.gather.domain.bo;

import com.ruoyi.common.core.web.oldDomain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * ERP媒体中心业务对象 erp_seller_store_mediacenter
 *
 * @author erp
 * @date 2023-05-09
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ErpSellerStoreMediacenterBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键", groups = { EditGroup.class })
    private Long id;

    /**
     * 媒体中心视频id。用于管理媒体中心的视频文件
     */
    @NotNull(message = "媒体中心视频id。用于管理媒体中心的视频文件不能为空", groups = { EditGroup.class })
    private Long aeMediacenterId;
    /**
     * 店铺id
     */
    @NotNull(message = "店铺id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long sellerId;

    /**
     * 转存结果;0表示转存成功，1表示转存失败，2表示处理中。同一个URL首次上传时，返回2
     */
    @NotNull(message = "转存结果;0表示转存成功，1表示转存失败，2表示处理中。同一个URL首次上传时，返回2不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer transferStatus;

    /**
     * 自定义业务id;自定义业务id，如商品id。存储的是商品id
     */
    @NotBlank(message = "自定义业务id;自定义业务id，如商品id。存储的是商品id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String bizId;

    /**
     * 视频存储id;视频存储id。用于发布商品时使用
     */
    @NotBlank(message = "视频存储id;视频存储id。用于发布商品时使用不能为空", groups = { AddGroup.class, EditGroup.class })
    private String storeName;

    /**
     * 自定义视频名称;等于入参中的videoName
     */
    @NotBlank(message = "自定义视频名称;等于入参中的videoName不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 视频文件格式
     */
    @NotBlank(message = "视频文件格式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fileFormat;

    /**
     * 视频文件大小;单位byte
     */
    @NotNull(message = "视频文件大小;单位byte不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long size;

    /**
     * 视频封面图片URL
     */
    @NotBlank(message = "视频封面图片URL不能为空", groups = { AddGroup.class, EditGroup.class })
    private String coverUrl;

    /**
     * 视频时长;单位秒
     */
    @NotNull(message = "视频时长;单位秒不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long duration;

    /**
     * 视频宽高比
     */
    @NotBlank(message = "视频宽高比不能为空", groups = { AddGroup.class, EditGroup.class })
    private String ratio;

    /**
     * 视频播放地址
     */
    @NotBlank(message = "视频播放地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String url;

    /**
     * 是否通过审核;1通过，-1不通过
     */
    @NotBlank(message = "是否通过审核;1通过，-1不通过不能为空", groups = { AddGroup.class, EditGroup.class })
    private String auditStatus;

    /**
     * 状态;1-在使用 0-已删除
     */
    @NotNull(message = "状态;1-在使用 0-已删除不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer type;

    @NotNull(message = "阿里云视频", groups = { AddGroup.class, EditGroup.class })
    private String aliUrl;

    /**
     * 乐观锁
     */
    @NotBlank(message = "乐观锁不能为空", groups = { AddGroup.class, EditGroup.class })
    private String revision;


}
